1. Field of the Invention
This invention relates generally to intelligent backup systems and, more particularly, to methods and apparatus for intelligently backing up selected data from a host computer""s main storage drive to prevent loss of data or user productivity and associated repairs and restorations.
2. Description of the Related Art
In recent years, personal computers have become an integral necessity in both the work and home environment. For many people, personal computers have become their main communication system, which can be used for sending and receiving electronic mail (i.e., e-mail), transferring files over a local area network (LAN), and communicating over the world wide web via the Internet. Because people have placed such a high level of dependence on their personal computers, when a failure (i.e., crash) to either a hardware or software component occurs, the user will generally suffer greatly in terms of productivity loss.
Many times, failures to either hardware or software components can lead to the complete loss of personal data, which often cannot be recovered using standard data recovery tools. In efforts to remedy the severity of such data loss, many people perform routine backups of their entire hard drives or files. In this manner, if an unrecoverable failure were to occur, then the user would lose only the data that was created between the last backup operation and the unrecoverable failure.
Unfortunately, relying on periodic backups of a computer""s storage drives (i.e., hard drives) does not eliminate the loss in productivity suffered while the failure is being attended to, and the need to reconstruct all of the lost data that was created between the last backup and the failure. To further complicate the reconstruction process, most of today""s computer software products have to be installed using complex installation software that is designed to place each component of the software product in the correct system folder location, registry file, startup file, etc., to preserve proper functionality with the computer""s operating system. As a result, even though the entire contents of a backup can be retrieved from the backup media, the restoring of a subsequently repaired storage drive will require a substantial amount of reconstruction.
Although the restoration of failed storage devices can sometimes be a trivial process when only a minor number of programs are re-installed onto the failed computer system, most of today""s computer systems use a wide number of programs, each requiring custom installation for proper operation. Furthermore, because most computer users purchase, update, and modify computer programs over the Internet, it is often impossible to reconstruct the original state of all programs, patches, or executables that are loaded onto a computer without keeping detailed logs of where each component was acquired. As a result, when attempts to reconstruct a user""s computer system are made, many of the originally installed software programs or components may not be installed because they are no longer available or supported by the original supplier.
Notwithstanding that most failures that are a result of a hardware malfunction or a software problem can be fixed, either by complete replacement or by performing repairs, users still experience data losses that produce harsh penalties in productivity or require significant down time. That is, even if users systematically backup their system regularly, some amount of data will be lost between the time of the last backup and the subsequent restoration. In certain circumstances, even if only a small amount of data is lost, that small amount may translate into many hours of reconstruction time. Furthermore, if the lost data was a time sensitive piece of data, then reconstruction over many hours or days may not be acceptable.
In view of the foregoing, there is a need for an intelligent backup system and method for implementing the system to protect data of a computer""s storage drive in case a system failure occurs. There is also a need for a system and a method for implementing the system that will enable a user to continue working from the intelligently backed-up data after a system failure occurs, and then restore the failed system after the system failure is intelligently identified and repaired.
Broadly speaking, the present invention fills these needs by providing an intelligent backup and restore system that prevents downtime productivity losses, and assists the user in trouble shooting the failure, repairing the failure if possible, and restoring the failed system back to its pre-failure condition. All of these functionalities are provided to the user through a user friendly graphical user interface that helps the user resume his or her normal computer use by booting to a peripheral storage device (that holds an intelligently backup data set) while the failure is remedied. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one embodiment, a method for repairing a hard drive of a computer system is disclosed. The method includes detecting a failure in the hard drive and then resuming work from a backup drive after the failure with the hard drive is detected. The repair of the hard drive includes launching a system diagnose engine that is configured to call on a footprint database to analyze physical and logical drive changes associated with the computer system. The footprint database includes information regarding the physical and logical drive of the computer system before the failure was detected with the hard drive. Then, an initial action that is to be taken in order to repair the hard drive is returned by the system diagnose engine.
In another embodiment, a system for repairing a hard drive of a computer system is disclosed. The repairing is initiated due to a detected failure in the hard drive, and the detected failure is configured to prompt a user of the computer system to reboot from a backup drive containing data intelligently backed-up from the hard drive. The system for repairing the hard drive includes calling a recovery component state machine having a plurality of method actions. Each of the plurality of method actions are configured to be executed and then call a next method action. The calling of the recovery component state machine begins by launching a system diagnose method that is part of the recovery component state machine. The system diagnose method is configured to call on a database file to enable an analysis of physical and logical drive changes associated with the computer system. The database file includes information regarding the physical and logical drive of the computer system before the failure was detected with the hard drive. The system diagnose method is then configured to call on one of the plurality of method actions in response to the analysis of the physical and logical drive changes associated with the computer system, such that the called method action will be configured to call the next method action in an attempt to detect and repair the failed hard drive.
In yet a further embodiment, computer readable media containing program instructions for repairing a hard drive of a computer system is disclosed. The repairing is initiated due to a detected failure in the hard drive, and the detected failure is configured to prompt a user of the computer system to reboot from a backup drive containing data intelligently backed-up from the hard drive. The computer readable media includes program instructions for calling a recovery component state machine having a plurality of method actions. Each of the plurality of method actions are configured to be executed and then call a next method action. In this embodiment, the calling of the recovery component state machine includes program instructions for launching a system diagnose method that is part of the recovery component state machine. The system diagnose method is configured to call on a database file to enable an analysis of physical and logical drive changes associated with the computer system. The database file includes information regarding the physical and logical drive of the computer system before the failure was detected with the hard drive. Further included as part of the recovery component state machine is program instructions for calling on one of the plurality of method actions in response to the analysis of the physical and logical drive changes associated with the computer system, such that the method action called is configured to call the next method action in an attempt to detect and repair the failed hard drive.
Advantageously, the backup and restore system of the present invention is designed to intelligently protect a user""s data and productivity upon experiencing a hard disk failure. In one embodiment, once the backup and restore system is installed and setup, the backup operations are performed in an incremental fashion (e.g., after the initial full backup, only those files that have changed from one backup to another will be backed up) to a peripheral storage device media. It should be appreciated that this incremental backup technique provides a powerful level of performance enhancement over conventional backup systems.
Another advantage of the intelligent backup and restore system of the present invention is that it will substantially eliminate the tremendous downtime that is typical of when a hard disk crash is experienced and no backup or simple conventional backup techniques are used. As a result, user productivity will no longer suffer when hard disk failures occur. In addition, the embodiments of the present invention also assist the user in an automated way of repairing the crashed hard disk. However, if the crashed hard disk is not repairable, the system will automatically detect when a new hard disk is added to the user""s system, and then assists in partitioning and formatting the hard disk for the user. When a new hard disk is prepared or the old hard disk is repaired, the system will restore the operating system and data files to their current state as now present on the peripheral storage device media. Upon re-booting, the newly restored hard disk will once again become the boot device. Another advantage of the present invention is that the peripheral storage device media does not have to be identical to that of the system""s hard drive. More specifically, even though most computer systems implement IDE/EIDE hard drives, the peripheral storage device (that is internal or external) does not have to be an IDE/EIDE drive. Although they can be the same, they may be of any type, standard, or size other than that of the computer system. Further yet, because the peripheral storage device media may be of a different kind and size than that of the computer system, when the spare tire backup is created, a file-based copying operation is advantageously implemented.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.